<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>glInvalidateSubFramebuffer - OpenGL ES 3 Reference Pages</title>
    <link rel="stylesheet" type="text/css" href="opengl-man.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/>
    <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                MathML: {
                    extensions: ["content-mathml.js"]
                },
                tex2jax: {
                    inlineMath: [['$','$'], ['\\(','\\)']]
                }
            });
        </script>
    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"/>
  </head>
  <body>
    <header/>
    <div class="refentry" id="glInvalidateSubFramebuffer">
      <div class="titlepage"/>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>glInvalidateSubFramebuffer — Invalidate portions of the contents of attachments within a framebuffer</p>
      </div>
      <div class="refsynopsisdiv">
        <h2>C Specification</h2>
        <div class="funcsynopsis">
          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
            <tr>
              <td>
                <code class="funcdef">void <strong class="fsfunc">glInvalidateSubFramebuffer</strong>(</code>
              </td>
              <td>GLenum <var class="pdparam">target</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLsizei <var class="pdparam">numAttachments</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>const GLenum *<var class="pdparam">attachments</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLint<var class="pdparam">x</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLint<var class="pdparam">y</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLsizei <var class="pdparam">width</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>GLsizei <var class="pdparam">height</var><code>)</code>;</td>
            </tr>
          </table>
          <div class="funcprototype-spacer"> </div>
        </div>
      </div>
      <div class="refsect1" id="parameters">
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>target</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the target of the invalidate operation.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>numAttachments</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies how many attachments are supplied in the <em class="parameter"><code>attachments</code></em> list.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>attachments</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    A list of <em class="parameter"><code>numAttachments</code></em> attachments to invalidate.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>x</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the left origin of the pixel rectangle to invalidate, with lower left hand corner at (0,0).
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>y</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the bottom origin of the pixel rectangle to invalidate, with lower left hand corner at (0,0).
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>width</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the width of the pixel rectangle to invalidate.
                </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>height</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                    Specifies the height of the pixel rectangle to invalidate.
                </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" id="description">
        <h2>Description</h2>
        <p>
            <code class="function">glInvalidateSubFramebuffer</code> signals to the
            GL that it need not preserve all pixels of a specified region of
            the framebuffer bound to <em class="parameter"><code>target</code></em>.
            <em class="parameter"><code>target</code></em> must be <code class="constant">GL_READ_FRAMEBFUFFER</code>,
            <code class="constant">GL_DRAW_FRAMEBUFFER</code> or <code class="constant">GL_FRAMEBUFFER</code>. The
            token <code class="constant">GL_FRAMEBUFFER</code> is treated as <code class="constant">GL_DRAW_FRAMEBUFFER</code>.
			<em class="parameter"><code>attachments</code></em>
            contains a list of <em class="parameter"><code>numAttachments</code></em> to be
            invalidated. If an attachment is specified that does not exist
            in the bound framebuffer, it is ignored.
            <em class="parameter"><code>x</code></em>, <em class="parameter"><code>y</code></em>,
            <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>
            specify the bounds of the pixel rectangle to invalidate. Any of
            these pixels lying outside of the window allocated to the
            current GL context, or outside of the image attached to the
            currently bound framebuffer object, are ignored.
        </p>
        <p>
            If a framebuffer object is bound, then
            <em class="parameter"><code>attachments</code></em> may contain
            <code class="constant">GL_COLOR_ATTACHMENTi</code>,
            <code class="constant">GL_DEPTH_ATTACHMENT</code>, 
            <code class="constant">GL_STENCIL_ATTACHMENT</code>, and/or
            <code class="constant">GL_DEPTH_STENCIL_ATTACHMENT</code>. If the
            framebuffer object is not complete,
            <code class="function">glInvalidateSubFramebuffer</code> may be ignored.
        </p>
        <p>
            If the default framebuffer is bound, then
            <em class="parameter"><code>attachments</code></em> may contain
            <code class="constant">GL_COLOR</code>, identifying the color buffer;
            <code class="constant">GL_DEPTH</code>, identifying the depth buffer;
            and/or <code class="constant">GL_STENCIL</code>, identifying the stencil
            buffer.
        </p>
      </div>
      <div class="refsect1" id="notes">
        <h2>Notes</h2>
        <p>
            The intention of this function is to provide a hint to the GL
            implementation that there is no longer a need to preserve the
            contents of particular attachments of a framebuffer object, or
            the default framebuffer. It is possible, for example, to signal
            the intention that depth and or stencil data is no longer needed
            at the end of a scene, or that multisample color buffer data is
            no longer needed after a resolve through
            <a class="citerefentry" href="glBlitFramebuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glBlitFramebuffer</span></span></a>.
        </p>
      </div>
      <div class="refsect1" id="errors">
        <h2>Errors</h2>
        <p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>target</code></em> is not <code class="constant">GL_DRAW_FRAMEBUFFER</code>, 
			<code class="constant">GL_READ_FRAMEBUFFER</code>, or <code class="constant">GL_FRAMEBUFFER</code>.
        </p>
        <p>
            <code class="constant">GL_INVALID_OPERATION</code> is generated if
            <em class="parameter"><code>attachments</code></em> contains
            <code class="constant">GL_COLOR_ATTACHMENTm</code> and m is greater than
            or equal to the value of
            <code class="constant">GL_MAX_COLOR_ATTACHMENTS</code>.
        </p>
      </div>
      <div class="refsect1" id="versions">
        <h2>API Version Support</h2>
        <div class="informaltable">
          <table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
            <colgroup>
              <col style="text-align: left; "/>
              <col style="text-align: center; " class="firstvers"/>
              <col style="text-align: center; " class="lastvers"/>
            </colgroup>
            <thead>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; ">
                 
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; " colspan="2">
                <span class="bold"><strong>OpenGL ES API Version</strong></span>
            </th>
              </tr>
              <tr>
                <th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>Function Name</strong></span>
            </th>
                <th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
                <span class="bold"><strong>2.0</strong></span>
            </th>
                <th style="text-align: center; border-bottom: 2px solid ; ">
                <span class="bold"><strong>3.0</strong></span>
            </th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td style="text-align: left; border-right: 2px solid ; ">glInvalidateSubFramebuffer</td>
                <td style="text-align: center; border-right: 2px solid ; ">-</td>
                <td style="text-align: center; ">✔</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="refsect1" id="seealso">
        <h2>See Also</h2>
        <p>
            <a class="citerefentry" href="glBindFramebuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glBindFramebuffer</span></span></a>,
            <a class="citerefentry" href="glBlitFramebuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glBlitFramebuffer</span></span></a>
            <a class="citerefentry" href="glFramebufferRenderbuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glFramebufferRenderbuffer</span></span></a>,
            <a class="citerefentry" href="glFramebufferTexture2D.xhtml"><span class="citerefentry"><span class="refentrytitle">glFramebufferTexture2D</span></span></a>,
            <a class="citerefentry" href="glFramebufferTextureLayer.xhtml"><span class="citerefentry"><span class="refentrytitle">glFramebufferTextureLayer</span></span></a>,
            <a class="citerefentry" href="glInvalidateFramebuffer.xhtml"><span class="citerefentry"><span class="refentrytitle">glInvalidateFramebuffer</span></span></a>
        </p>
      </div>
      <div class="refsect1" id="Copyright">
        <h2>Copyright</h2>
        <p>
            Copyright <span class="trademark"/>© 2014-2015 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="link" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p>
      </div>
    </div>
    <footer/>
  </body>
</html>
